package simulationgps;

public class Troncon {
	static private int rang=0; //numéro d'ordre par rapport à la rue dans laquelle il se trouve 
	private int sens; // 0= c1<->c2; 1= c1 -> c2; 2= c2->c1; 
	private double tempsParcours;
	private int longueur;
	private int numeroDeb;
	private int numeroFin;
	private Carrefour c1; //carrefour gauche
	private Carrefour c2; //carrefour droit
	
	public int getSens() {
		return sens;
	}
	public void setSens(int sens) {
		this.sens = sens;
	}
	public double getTempsParcours() {
		return tempsParcours;
	}
	public void setTempsParcours(int tempsParcours) {
		this.tempsParcours = tempsParcours;
	}
	public int getLongueur() {
		return longueur;
	}
	public void setLongueur(int longueur) {
		this.longueur = longueur;
	}
	public int getNumeroDeb() {
		return numeroDeb;
	}
	public void setNumeroDeb(int numeroDeb) {
		this.numeroDeb = numeroDeb;
	}
	public int getNumeroFin() {
		return numeroFin;
	}
	public void setNumeroFin(int numeroFin) {
		this.numeroFin = numeroFin;
	}
	public Carrefour getCarrefour1() {
		return c1;
	}
	public void setCarrefour1(Carrefour carrefour1) {
		this.c1 = carrefour1;
	}
	public Carrefour getCarrefour2() {
		return c2;
	}
	public void setCarrefour2(Carrefour carrefour2) {
		this.c2 = carrefour2;
	}
	
	/**
	 * Regarde si on peut parcourir ce troncon en partant du carrefour donné vers un autre
	 * @param car: Carrefour de départ 
	 * @return le carrefour d'arrivé; null si pas possible
	 */
	public Carrefour parcourir(Carrefour depart){
		if(this.c1==depart && this.sens!=2){
			return this.c2;
		}
		if(this.c2==depart && this.sens!=1){
			return this.c1;
		}
		return null;

	}
	public void afficher() {
		assert(c1!=null): "Carrefour gauche inexistant";
		c1.afficherCarrefour();
		rang++;
	    System.out.print(" tr" + rang + sens());
//	this.c2.afficherCarrefour(); System.out.println("");
	}
	
	public Troncon(int sens, double tempsParcours, int longueur,
			Carrefour c1, Carrefour c2) {
		super();
		this.sens = sens;
		this.tempsParcours = tempsParcours;
		this.longueur = longueur;
		this.c1 = c1;
		this.c2 = c2;
	}
	
	private String sens(){
		switch (this.sens){
		  case 0 : return "<--->";
		  case 1: return "--->";
		  case 2: return "<---";
		}
		return "sens inconnu";
	}

}
